package com.roads.engineering.mapper;

import com.roads.engineering.domain.summary.SummaryIpc;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * 汇总-中期支付证书Mapper接口
 * 
 * @author nhp
 * @date 2022-06-15
 */
public interface SummaryIpcMapper {

    /**
     * 查询列表
     *
     * @param model 汇总-中期支付证书
     * @return 汇总-中期支付证书集合
     */
    List<SummaryIpc> selectModelList(SummaryIpc model);

    /**
     * 根据标段编号/工期/支付项目编号获取某支付项目
     *
     * @param institutionCode 标段编号
     * @param periodName 工期
     * @param userName 用户
     * @param itemCode 支付项目编号
     * @return 某支付项目
     */
    SummaryIpc getItemByBidAndPeriodAndItemCode(@Param("institutionCode")String institutionCode,
                                                @Param("periodName") String periodName,
                                                @Param("userName") String userName,
                                                @Param("itemCode") String itemCode);

    /**
     * 根据项目ID获取项目百章各期本期末完成金额
     *
     * @param projectId 项目ID
     * @return 百章项目各期值
     */
    List<SummaryIpc> getProjectHundredChaptersCurrentEndTotalByProject(@Param("projectId") Integer projectId);

    /**
     * 根据项目ID/用户获取项目百章各期本期末完成金额
     *
     * @param projectId 项目ID
     * @param userName 用户
     * @return 百章项目各期值
     */
    List<SummaryIpc> getProjectHundredChaptersCurrentEndTotalByProjectAndUser(@Param("projectId") Integer projectId,@Param("userName")  String userName);

    /**
     * 删除汇总中期支付证书表
     *
     * @param userName 登录用户名称
     * @param institutionCode 标段编号
     * @param periodName 工期
     */
    void deleteSummaryIpc(@Param("userName")String userName, @Param("institutionCode")String institutionCode, @Param("periodName")String periodName);

    /**
     * 批量增加
     *
     * @param list 数据集合
     * @return 结果
     */
    int insertBatch(List<SummaryIpc> list);

}
